#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int main()
{
    // 创建子进程 -- fork是一个函数 -- 函数执行前: 只有一个父进程 -- 函数执行后: 父进程+子进程
    pid_t id = fork();
    if(id == 0)
    {
        //子进程
        while(1)
        {
            printf("子进程, pid: %d, ppid: %d, id: %d\n", getpid(), getppid(), id);
            sleep(1);
        }
    }
    else if(id > 0)
    {
        // parent
        while(1)
        {
            printf("父进程, pid: %d, ppid: %d, id: %d\n", getpid(), getppid(), id);
            sleep(2);
        }
    }
    else{

    }

    // 同一个变量id， 在后续不会被修改的情况下，竟然有不同的内容！
    //printf("我是一个进程, pid: %d, ppid: %d, id: %d\n", getpid(), getppid(), id);

    sleep(2);

//    while(1)
//    {
//        printf("我是一个进程!, 我的ID是: %d, 父进程pid: %d\n", getpid(), getppid());
//        sleep(1);
//        //int a = 1/0;
//    }
//    return 0;
}
